package javabasic;

import java.util.ArrayList;
//import javabasic.Student;

/*
@date:2020.12.16
@author:dushuai
@title:ArrayList集合知识点联系
@note：使用ArrayList集合前，需要先导入ArrayList包，该包归属于java.util.ArrayList;
* */
public class ArrayListExercise {
    public static void main(String[] args) {
//        创建一个集合
        ArrayList<String> arr = new ArrayList<String>();
//常用方法1：add方法——向集合中添加元素
        arr.add("杜帅");
        arr.add("王大雷");
        arr.add("唐辉");
        arr.add("房泓光");
//        输出集合
        System.out.println(arr);
        System.out.println(arr.contains("杜帅"));
        System.out.println(arr.contains("dushuai"));
        /*
//        常用方法2：size方法——集合中元素的个数
        System.out.println(arr.size());
//        常用方法3：get方法——返回指定索引的值
        System.out.println(arr.get(2));
//        常用方法4：set方法——修改指定索引处的值，并将修改处的原值返回
        System.out.println(arr.set(1, "石珊珊"));
        System.out.println("我是修改后的集合：" + arr);
//        常用方法5：remove方法——删除指定索引处的值，并将修改处的原值返回
        System.out.println(arr.remove(2));
        System.out.println("我是修改后的集合：" + arr);
//        常用方法6：isEmpty方法：判断集合是否为空，结果返回布尔值
        System.out.println(arr.isEmpty());
//遍历打印集合中的每一个元素结果
        for (int i = 0; i < arr.size(); i++) {
            System.out.println("我是集合的第" + (i + 1) + "个元素，我是：" + arr.get(i));
        }
//        创建一个student类的集合
        ArrayList<Student> stu = new ArrayList<Student>();
//        调用Student类的有参构造方法，创建3个Student实例；
        Student stu1 = new Student("001", "杜帅", 31, "1989-01-05");
        Student stu2 = new Student("002", "王大雷", 34, "1986-04-10");
        Student stu3 = new Student("003", "唐辉", 32, "1988-03-02");
//        将Student的实例作为元素插入集合中
        stu.add(stu1);
        stu.add(stu2);
        stu.add(stu3);
//        输出插入后集合的结果
        System.out.println("我是插入后的元素结果：" + stu);//这里可以看到是实例在堆内存中的地址信息
//如果想打印集合中可见的结果，则需要通过调用Student中指定的get方法
        for (int i = 0; i < stu.size(); i++) {
//因为stu集合中存放的Student类实例的内存地址，所以可以创建一个新的临时Student实例，用于接收集合中元素的地址
            //Student temp = stu.get(i);
            System.out.println("我的姓名是：" + stu.get(i).getName() + ",我的年龄是：" + stu.get(i).getAge() + "岁");
            Student temp = stu.get(i);
            System.out.println("我的姓名是：" + temp.getName() + ",我的年龄是：" + temp.getAge() + "岁");


    } */
    }
}

